package org.footballmanager.pandafootball.system.service;

import org.footballmanager.pandafootball.system.domain.FootCupbf;
import org.footballmanager.pandafootball.system.form.impl.FootCupbfSearchForm;
import org.springframework.ui.Model;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface FootCupbfService extends BaseService<FootCupbf> {
	/**
	 * 确认杯赛报分信息
	 * @param bf
	 */
	void makesure(FootCupbf bf, HttpServletRequest request);
	
	/**
	 * 根据次数和杯赛类型添加报分记录到数据库
	 * @param times
	 * @param type
	 */
	void createBf(int times, boolean type, HttpServletRequest request);
	
	/**
	 * 根据用户主键查找杯赛报分信息
	 * @param userId
	 * @return
	 */
	FootCupbf findCupbfByUserid(Long userId);

	/**
	 * 根据次数，赛季和比赛类型找报分记录
	 * @param times
	 * @param sj
	 * @param type
	 * @return
	 */
	List<FootCupbf> findBf(String times, Long sj, boolean type);

	/**
	 * 查找第一场已报分的记录
	 * @param userId
	 * @return
	 */
	FootCupbf findFirstBfResult(Long userId);

	/**
	 * 查找可以确认报分的信息
	 * @param userId
	 * @return
	 */
	FootCupbf findMakesureBfByUserid(Long userId);
	
	/**
	 * 立即晋级
	 * @param bf
	 * @param times
	 */
	void atOnceIn(FootCupbf bf, int times, HttpServletRequest request);
	
	/**
	 * 立即晋级
	 * @param bf
	 */
	void atOnceIn(FootCupbf bf, HttpServletRequest request);

    /**
     * 翻页方法
     * @param footCupbfSearchForm 条件
     * @return 列表
     */
    List<FootCupbf> findall(FootCupbfSearchForm footCupbfSearchForm);

    /**
     * 查询
     * @param entityname 实体类名
     * @param map 参数
     * @param footCupbfSearchForm 条件
     */
    void search(String entityname, Model map, FootCupbfSearchForm footCupbfSearchForm);

    /**
     * 删除所有
     * @param footCupbfSearchForm 条件
     * @param request 请求
     */
    void deleteAll(FootCupbfSearchForm footCupbfSearchForm, HttpServletRequest request);
}